将Inception和Residual connection结合,提出了Inception V4
Inception结构有着良好的性能,且计算量低。Residual connection不同于传统网络结构,且在2015 ILSVRC取得冠军,它的性能和Inception-v3接近。作者尝试将Inception结构和Residual connection结合,提出了新的网络结构Inception-v4。Inception-v4在ImageNet分类比赛中,top-5的错误率为3.08%。
介绍
Residual connection使得训练更深的网络变得容易。Inception结构也使得网络变深。将Residual connection添加到Inception结构中,使得Inception结构得到Residual connection的“益处”,且保留计算的高效。
作者也尝试了不使用Residual connection,而是直接拓展Inception结构,使得它更深更宽。作者也设计了不用Residual connection版本的Inception-v4。
相关工作
卷积网络在图像识别领域已经十分流行,经典网络有AlexNet、VGGNet、GoogLeNet等。Residual connection的提出是用了训练更深的网络,但是作者发现不使用Residual connection也可以训练更新的网络,Residual connection并不是必要条件;只是使用了Residual connection会加快训练速度。
Inception结构最初由GoogLeNet引入,GoogLeNet叫做Inception-v1;之后引入了BatchNormalization,叫做Inception-v2;随后引入分解,叫做Inception-v3。
网络架构
Inception-v4共有四种结构,一种不包含Residual connection结构的;包含Residual connection结构的,根据包含Inception模块的不同又分为2种:Inception-ResNet-v1和Inception-ResNet-v2。
Inception-v4
下图是Inception-v4的结构:
Stem模块为:
下面分别为:Inception-A、Inception-B、Inception-C模块。
不同的Inception模块的连接,减小了feature map,却增加了filter bank。
35x35变为17x17模块,即Reduction-A
17x17变为8x8模块,即Reduction-B
Inception-ResNet
Inception-ResNet的两个版本,结构基本相同,只是细节不同。整体结构为:
Inception-ResNet的两个版本对应Inception-resnet-A、Inception-resnet-B、Inception-resnet-C略微不同。
其中Inception-ResNet-v1和Inception-ResNet-v2对应的Inception-resnet-A模块为:
其中Inception-ResNet-v1和Inception-ResNet-v2对应的Inception-resnet-B模块为:
其中Inception-ResNet-v1和Inception-ResNet-v2对应的Inception-resnet-C模块为:
Inception-ResNet的stem模块和Reduction-B模块也略微不同。Inception-ResNet-v1和Inception-ResNet-v2主要在于Reduction-A结构不同:
其中k,l,m,n表示filter bank size。
缩放Residuals
当卷积核个数超过1000时,训练将会变得不稳定,在训练的早期,网络“died”。这是缩小Residuals有助于稳定训练,缩小因子介于0.1到0.3。
He在训练Residual Net时也发现这个问题,提出了“two phase”训练。首先“warm up”,使用较小的学习率。接着再使用较大的学习率。
训练方法
使用Momentum + SGM,momentum=0.9。使用RMSProp,decay为0.9,$\epsilon=1.0$。
学习率为0.045,每2个epoch缩小为原理的0.94。